✅インターネット越しに自宅のmac miniにアクセスする
from mac miniをNASとして使う
目標:インターネット越しにiPhoneのファイルアプリからNASにSMBでアクセスできる
手段
Cloudflare ZeroTrustでやる
https://developers.cloudflare.com/learning-paths/replace-vpn/connect-private-network/
なぜVPNではなくZero Trust Network Access?
Cloudflare Tunnelを使うと設定が簡略化できる
ルーターでのポート解放が不要
VPNサーバーのメンテナンスが不要(cloudflaredのお世話になる)
クライアントの導入が簡単(WARPを入れてGoogleなどでアクセスするだけ)
VPNよりセキュア(ログインしているユーザーも信じずに、アクセスするたびに継続的な検証をする)
経路がCloudflareのDCネットワーク経由になるのでパフォーマンス向上が期待できる
大雑把な流れ
cloudflaredを使った接続の仕組み
https://gyazo.com/a8de8b516ffbf5c77fc86b3326ffa316
https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
サーバー(mac mini):cloudflaredを常駐させる
https://gyazo.com/536d0fb0fb7625e0e868f75f0de13413
homebrewのコマンドがマニュアルに書いてあるのでうっていくだけ
どのprivate IP帯を流すのかをcloudflareのダッシュボードのprivate networksで指定する
指定は環境ごとに異なるので各自で調べる必要あり。
クライアント:WARPでアクセスする
https://gyazo.com/1046a57c97df2858bf456f1611e02810
指定したログイン方法でアクセスできる
接続方法は2種類あるがcloudflaredを使う
https://developers.cloudflare.com/learning-paths/replace-vpn/connect-private-network/connection-methods/
cloudflared is a daemon service that proxies traffic to internal applications or an entire private network.
Gemini 2.5 Pro.iconWARP Connector は、より高度で複雑なネットワーク向けの選択肢です。ドキュメントにある通り、以下のような双方向の通信が必要な場合に使われます。
会社のプライベートネットワーク全体をCloudflareに接続する
サーバー側から更新をかける必要があるActive Directory (AD) やSCCM
VoIP(電話)のような双方向の通信
AMD64しか使えないからそもそも使えない
具体的な設定方法
Mac mini上での設定
クライアントとcloudfraredのダウンロード
https://one.dash.cloudflare.com/9823578a052eb76229507a44904e3b01/settings/resources
トンネルの作成
トラブル: mac miniにcloudflaredをインストールしてもConnectorsに現れなかった
ブラウザでトンネルを削除して、mac miniから一旦uninstallして再度installしたら現れた
Cloudflareのダッシュボードでの設定
private networkとしてアクセスしたいIP帯をprivate networksに設定する
https://gyazo.com/b4bd73ea8529852db4a41423c4f04354
インターネットに繋いだクライアント側でmac miniのプライベートIPアドレス(例:192.168.68.69)にアクセスしようとするとインターネット越しに自宅のmac miniへアクセスするように設定している
public hostnamesは利用しないので設定しない
cloudflareのダッシュボードで許可ユーザーとログイン方法を指定する
メールアドレスにコードが送られてくるのがデフォルト
GoogleでログインしたかったらGoogle cloudのAPIキーを作成して入れたりする必要あり
全てドキュメント通りにやるだけ
許可ユーザーを指定していないのにログインしようとすると、全て拒否される
https://gyazo.com/e85a27dcec1c2fd44cc622490aa6642f
クライアント(iPhone)の設定
1.1.1.1アプリからCloudflare Zero Trustで接続する
https://gyazo.com/c796d6d832873d2c1e87e8816494cc5f
これで、ファイルアプリからsmb://192.168.68.69でアクセスするできるようになる
---
以下はうまくいかなかったときの試行錯誤
https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/smb/
https://community.cloudflare.com/t/using-cloudflare-tunnel-for-smb/693958
Zero Trustの画面でボタンが振動する、could not establish a connection
症状
https://gyazo.com/ea282e9dcb40733c71b81c809da18502
対策
ちょっと待ってやりなおす
うまくいかない
Gemini 2.5 Pro.icon
Cloudflareの「VPN代替ソリューション」は、大きく分けて2つのアクセス方法を提供しています。
1. プライベートネットワーク接続 (WARP to Tunnel)
方法: WARPクライアント(iPhoneアプリなど)を使って、デバイス全体を会社のプライベートネットワークに接続する。あたかも社内LANにいるかのように、IPアドレスで直接サーバーにアクセスする。
ユーザーの用途: これがまさに、iPhoneからMac MiniのSMB共有にアクセスしたい今回のケースです。
必要な設定: TunnelのPrivate Networksタブ
2. 特定のアプリケーションへの接続 (Public Hostname)
方法: Webブラウザや専用ツールから特定のドメイン(例: nas.motosono.works)にアクセスする。WARPクライアントが不要な場合もある。
チュートリアルの目的: この方法は、社内のWebアプリ(勤怠管理システムなど)を安全に公開するシナリオで紹介されています。
必要な設定: TunnelのPublic Hostnamesタブ
Public Hostname方式でもSMBにアクセスすること自体は可能です。
しかし、今回その方法が使えないのは、アクセス元のデバイスがiPhoneだからです。
Public Hostname方式は、接続する側のデバイス(PCやMac)で、以下の様なコマンドを実行する必要があります。
$ cloudflared access tcp --hostname nas.motosono.works --url localhost:4445
このコマンドを実行することで初めて、localhost:4445 へのアクセスがCloudflare経由でMac Miniに届くようになります。
iPhoneでは、このようなコマンドを実行するためのターミナル機能が標準で備わっていません。
基素.iconWARPのアプリでできるんじゃないのか
追記:できないみたい
プライベートネットワーク接続 (WARP to Tunnel)方式
こちらは、WARPアプリがiPhoneのネットワーク設定そのものを書き換えてくれます。アプリをオンにするだけで、iPhoneはあたかもMac Miniと同じネットワーク(192.168.68.0/24)の中にいるかのように振る舞います。
特別なコマンドは一切不要で、ただ「ファイル」アプリからMac MiniのプライベートIPアドレス(smb://192.168.68.x)を指定するだけで接続できます。
iPhoneからアクセスするという今回の目的にとって、唯一現実的な選択肢
基素.iconチュートリアルでは、public hostnameを指定したとしてもwarpアプリでアクセスしてたけどな?
WARPアプリをオンにすると、iPhoneはCloudflareのネットワークにとって「信頼されたデバイス」になります。
その状態で、同じアカウントに登録されているPublic Hostnameアクセスしようとすると、Cloudflareのネットワークがそれを賢く認識します。
そして、「この信頼されたデバイスからのアクセスだから、インターネットに一度出さずに、直接トンネルを通してMac Miniに繋いであげよう」と、自動的にトラフィックを中継してくれるのです。
基素.iconあかん。この問題をGeminiに従うのはやめよう
追記:結局この方法であっていた
2025-07-17 できた
public hostnamesは利用しない
Gemini 2.5 Pro.iconcloudflaredデーモンがiPadOSでは利用できないので、iPadからの接続にこの方式は使えない
Private netowrksを設定してsmb:://ルータのプライベートIPで接続する
Zero Trustで接続していればVPN接続としてmac miniと同じ点絵ワークにいるかのように動く
この方式はmac miniのIPが変わると接続できなくなるので、ルーターからmac miniのIPを固定しておく
ipアドレスを確認
$ ipconfig getpacket en0
固定(BE75の場合はDecoアプリから固定できる)
https://gyazo.com/6aa3d9213b6e98cca178ac3692a30c8b
トラブル
https://gyazo.com/fe6bb6e544fa16dcccf6a1d5240c29db
ファイル名が長いものがあるとfiles appでそのディレクトリがエラーで開けなくなる
ファイル名を削る